#include "QSPrecompiledHeaders.h"

#include "QSSystemFactory.h"
#include "QSSystems.h"
#include "Ogre/QSOgreRenderSystem.h"
#include "OIS/QSOISInputSystem.h"
#include "CEGUI/QSCEGUISystem.h"
#include "Lua/QSLuaScriptSystem.h"
#include "detail/QSHostSystemImpl.h"
#include "detail/QSEventSystemImpl.h"
#include "detail/QSGameSystemImpl.h"

using namespace QS;

ScriptSystem* SystemFactory::createScriptSystem(Engine* e)
{
	return new LuaScriptSystem(e);
}

RenderSystem* SystemFactory::createRenderSystem(Engine* e)
{
	return new OgreRenderSystem(e);
}

GuiSystem* SystemFactory::createGuiSystem(Engine* e)
{
	return new CEGUISystem(e);
}

InputSystem* SystemFactory::createInputSystem(Engine* e)
{
	return new OISInputSystem(e);
}

HostSystem* SystemFactory::createHostSystem(Engine* e)
{
	return new HostSystemImpl(e);
}

GameSystem* SystemFactory::createGameSystem(QS::Engine* e)
{
	return new GameSystemImpl(e);
}

EventSystem* SystemFactory::createEventSystem(QS::Engine* e)
{
	return new EventSystemImpl(e);
}